export default {
  // 为当前模块开启命名空间
  namespaced: true,
  // 模块的 state 数据
  state: () => ({
    // 收货地址
    address: JSON.parse(uni.getStorageSync('address') || '{}'),
    // 登陆之后的token
    token: uni.getStorageSync('token'),
    // 用户的基本信息
    userinfo: JSON.parse(uni.getStorageSync('userinfo') || '{}'),
    // 返回页面的信息
    redirectInfo: null
  }),

  // 模块的 mutations 方法
  mutations: {
    updateRedirectInfo(state, newInfo) {
      state.redirectInfo = newInfo
    },
    updateAddress(state, newAddress) {
      // 更改收货地址
      state.address = newAddress
      // 持久化
      this.commit('m_user/savaAddressStorage')
    },
    savaAddressStorage(state) {
      uni.setStorageSync('address', JSON.stringify(state.address))
    },
    updateUserInfo(state, newUserInfo) {
      // 更新用户信息
      state.userinfo = newUserInfo
      // 持久化
      this.commit('m_user/savaUserinfoStorage')
    },
    savaUserinfoStorage(state) {
      // 数据持久化 用户信息
      uni.setStorageSync('userinfo', JSON.stringify(state.userinfo))
    },
    updateToken(state, newToken) {
      // 修改token值
      state.token = newToken
      this.commit('m_user/saveTokenStorage')
    },
    saveTokenStorage(state) {
      // token的数据持久化
      uni.setStorageSync('token', state.token)
    }
  },
  // 模块的 getters 属性
  getters: {
    addstr(state) {
      // console.log(state.address);
      // 具体收货地址的计算属性
      const {
        provinceName,
        cityName,
        countyName,
        detailInfo
      } = state.address;
      // return
      return provinceName + cityName + countyName + detailInfo;
    }
  },
}
